package cn.chiship.framework.upms.biz.system.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * Example
 *
 * @author lijian
 * @date 2023-02-21
 */
public class UpmsEmailSettingExample implements Serializable {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private static final long serialVersionUID = 1L;

    public UpmsEmailSettingExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria implements Serializable {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedIsNull() {
            addCriterion("gmt_created is null");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedIsNotNull() {
            addCriterion("gmt_created is not null");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedEqualTo(Long value) {
            addCriterion("gmt_created =", value, "gmtCreated");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedNotEqualTo(Long value) {
            addCriterion("gmt_created <>", value, "gmtCreated");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedGreaterThan(Long value) {
            addCriterion("gmt_created >", value, "gmtCreated");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedGreaterThanOrEqualTo(Long value) {
            addCriterion("gmt_created >=", value, "gmtCreated");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedLessThan(Long value) {
            addCriterion("gmt_created <", value, "gmtCreated");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedLessThanOrEqualTo(Long value) {
            addCriterion("gmt_created <=", value, "gmtCreated");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedIn(List<Long> values) {
            addCriterion("gmt_created in", values, "gmtCreated");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedNotIn(List<Long> values) {
            addCriterion("gmt_created not in", values, "gmtCreated");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedBetween(Long value1, Long value2) {
            addCriterion("gmt_created between", value1, value2, "gmtCreated");
            return (Criteria) this;
        }

        public Criteria andGmtCreatedNotBetween(Long value1, Long value2) {
            addCriterion("gmt_created not between", value1, value2, "gmtCreated");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIsNull() {
            addCriterion("gmt_modified is null");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIsNotNull() {
            addCriterion("gmt_modified is not null");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedEqualTo(Long value) {
            addCriterion("gmt_modified =", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotEqualTo(Long value) {
            addCriterion("gmt_modified <>", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedGreaterThan(Long value) {
            addCriterion("gmt_modified >", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedGreaterThanOrEqualTo(Long value) {
            addCriterion("gmt_modified >=", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedLessThan(Long value) {
            addCriterion("gmt_modified <", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedLessThanOrEqualTo(Long value) {
            addCriterion("gmt_modified <=", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIn(List<Long> values) {
            addCriterion("gmt_modified in", values, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotIn(List<Long> values) {
            addCriterion("gmt_modified not in", values, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedBetween(Long value1, Long value2) {
            addCriterion("gmt_modified between", value1, value2, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotBetween(Long value1, Long value2) {
            addCriterion("gmt_modified not between", value1, value2, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIsNull() {
            addCriterion("is_deleted is null");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIsNotNull() {
            addCriterion("is_deleted is not null");
            return (Criteria) this;
        }

        public Criteria andIsDeletedEqualTo(Byte value) {
            addCriterion("is_deleted =", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotEqualTo(Byte value) {
            addCriterion("is_deleted <>", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedGreaterThan(Byte value) {
            addCriterion("is_deleted >", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_deleted >=", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedLessThan(Byte value) {
            addCriterion("is_deleted <", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedLessThanOrEqualTo(Byte value) {
            addCriterion("is_deleted <=", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIn(List<Byte> values) {
            addCriterion("is_deleted in", values, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotIn(List<Byte> values) {
            addCriterion("is_deleted not in", values, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedBetween(Byte value1, Byte value2) {
            addCriterion("is_deleted between", value1, value2, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotBetween(Byte value1, Byte value2) {
            addCriterion("is_deleted not between", value1, value2, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andSubjectIsNull() {
            addCriterion("subject is null");
            return (Criteria) this;
        }

        public Criteria andSubjectIsNotNull() {
            addCriterion("subject is not null");
            return (Criteria) this;
        }

        public Criteria andSubjectEqualTo(String value) {
            addCriterion("subject =", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectNotEqualTo(String value) {
            addCriterion("subject <>", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectGreaterThan(String value) {
            addCriterion("subject >", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectGreaterThanOrEqualTo(String value) {
            addCriterion("subject >=", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectLessThan(String value) {
            addCriterion("subject <", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectLessThanOrEqualTo(String value) {
            addCriterion("subject <=", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectLike(String value) {
            addCriterion("subject like", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectNotLike(String value) {
            addCriterion("subject not like", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectIn(List<String> values) {
            addCriterion("subject in", values, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectNotIn(List<String> values) {
            addCriterion("subject not in", values, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectBetween(String value1, String value2) {
            addCriterion("subject between", value1, value2, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectNotBetween(String value1, String value2) {
            addCriterion("subject not between", value1, value2, "subject");
            return (Criteria) this;
        }

        public Criteria andHostIsNull() {
            addCriterion("host is null");
            return (Criteria) this;
        }

        public Criteria andHostIsNotNull() {
            addCriterion("host is not null");
            return (Criteria) this;
        }

        public Criteria andHostEqualTo(String value) {
            addCriterion("host =", value, "host");
            return (Criteria) this;
        }

        public Criteria andHostNotEqualTo(String value) {
            addCriterion("host <>", value, "host");
            return (Criteria) this;
        }

        public Criteria andHostGreaterThan(String value) {
            addCriterion("host >", value, "host");
            return (Criteria) this;
        }

        public Criteria andHostGreaterThanOrEqualTo(String value) {
            addCriterion("host >=", value, "host");
            return (Criteria) this;
        }

        public Criteria andHostLessThan(String value) {
            addCriterion("host <", value, "host");
            return (Criteria) this;
        }

        public Criteria andHostLessThanOrEqualTo(String value) {
            addCriterion("host <=", value, "host");
            return (Criteria) this;
        }

        public Criteria andHostLike(String value) {
            addCriterion("host like", value, "host");
            return (Criteria) this;
        }

        public Criteria andHostNotLike(String value) {
            addCriterion("host not like", value, "host");
            return (Criteria) this;
        }

        public Criteria andHostIn(List<String> values) {
            addCriterion("host in", values, "host");
            return (Criteria) this;
        }

        public Criteria andHostNotIn(List<String> values) {
            addCriterion("host not in", values, "host");
            return (Criteria) this;
        }

        public Criteria andHostBetween(String value1, String value2) {
            addCriterion("host between", value1, value2, "host");
            return (Criteria) this;
        }

        public Criteria andHostNotBetween(String value1, String value2) {
            addCriterion("host not between", value1, value2, "host");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolIsNull() {
            addCriterion("transport_protocol is null");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolIsNotNull() {
            addCriterion("transport_protocol is not null");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolEqualTo(String value) {
            addCriterion("transport_protocol =", value, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolNotEqualTo(String value) {
            addCriterion("transport_protocol <>", value, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolGreaterThan(String value) {
            addCriterion("transport_protocol >", value, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolGreaterThanOrEqualTo(String value) {
            addCriterion("transport_protocol >=", value, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolLessThan(String value) {
            addCriterion("transport_protocol <", value, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolLessThanOrEqualTo(String value) {
            addCriterion("transport_protocol <=", value, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolLike(String value) {
            addCriterion("transport_protocol like", value, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolNotLike(String value) {
            addCriterion("transport_protocol not like", value, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolIn(List<String> values) {
            addCriterion("transport_protocol in", values, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolNotIn(List<String> values) {
            addCriterion("transport_protocol not in", values, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolBetween(String value1, String value2) {
            addCriterion("transport_protocol between", value1, value2, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andTransportProtocolNotBetween(String value1, String value2) {
            addCriterion("transport_protocol not between", value1, value2, "transportProtocol");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthIsNull() {
            addCriterion("smtp_auth is null");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthIsNotNull() {
            addCriterion("smtp_auth is not null");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthEqualTo(Byte value) {
            addCriterion("smtp_auth =", value, "smtpAuth");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthNotEqualTo(Byte value) {
            addCriterion("smtp_auth <>", value, "smtpAuth");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthGreaterThan(Byte value) {
            addCriterion("smtp_auth >", value, "smtpAuth");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthGreaterThanOrEqualTo(Byte value) {
            addCriterion("smtp_auth >=", value, "smtpAuth");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthLessThan(Byte value) {
            addCriterion("smtp_auth <", value, "smtpAuth");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthLessThanOrEqualTo(Byte value) {
            addCriterion("smtp_auth <=", value, "smtpAuth");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthIn(List<Byte> values) {
            addCriterion("smtp_auth in", values, "smtpAuth");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthNotIn(List<Byte> values) {
            addCriterion("smtp_auth not in", values, "smtpAuth");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthBetween(Byte value1, Byte value2) {
            addCriterion("smtp_auth between", value1, value2, "smtpAuth");
            return (Criteria) this;
        }

        public Criteria andSmtpAuthNotBetween(Byte value1, Byte value2) {
            addCriterion("smtp_auth not between", value1, value2, "smtpAuth");
            return (Criteria) this;
        }

        public Criteria andIsSslIsNull() {
            addCriterion("is_ssl is null");
            return (Criteria) this;
        }

        public Criteria andIsSslIsNotNull() {
            addCriterion("is_ssl is not null");
            return (Criteria) this;
        }

        public Criteria andIsSslEqualTo(Byte value) {
            addCriterion("is_ssl =", value, "isSsl");
            return (Criteria) this;
        }

        public Criteria andIsSslNotEqualTo(Byte value) {
            addCriterion("is_ssl <>", value, "isSsl");
            return (Criteria) this;
        }

        public Criteria andIsSslGreaterThan(Byte value) {
            addCriterion("is_ssl >", value, "isSsl");
            return (Criteria) this;
        }

        public Criteria andIsSslGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_ssl >=", value, "isSsl");
            return (Criteria) this;
        }

        public Criteria andIsSslLessThan(Byte value) {
            addCriterion("is_ssl <", value, "isSsl");
            return (Criteria) this;
        }

        public Criteria andIsSslLessThanOrEqualTo(Byte value) {
            addCriterion("is_ssl <=", value, "isSsl");
            return (Criteria) this;
        }

        public Criteria andIsSslIn(List<Byte> values) {
            addCriterion("is_ssl in", values, "isSsl");
            return (Criteria) this;
        }

        public Criteria andIsSslNotIn(List<Byte> values) {
            addCriterion("is_ssl not in", values, "isSsl");
            return (Criteria) this;
        }

        public Criteria andIsSslBetween(Byte value1, Byte value2) {
            addCriterion("is_ssl between", value1, value2, "isSsl");
            return (Criteria) this;
        }

        public Criteria andIsSslNotBetween(Byte value1, Byte value2) {
            addCriterion("is_ssl not between", value1, value2, "isSsl");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortIsNull() {
            addCriterion("smtp_ssl_port is null");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortIsNotNull() {
            addCriterion("smtp_ssl_port is not null");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortEqualTo(String value) {
            addCriterion("smtp_ssl_port =", value, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortNotEqualTo(String value) {
            addCriterion("smtp_ssl_port <>", value, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortGreaterThan(String value) {
            addCriterion("smtp_ssl_port >", value, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortGreaterThanOrEqualTo(String value) {
            addCriterion("smtp_ssl_port >=", value, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortLessThan(String value) {
            addCriterion("smtp_ssl_port <", value, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortLessThanOrEqualTo(String value) {
            addCriterion("smtp_ssl_port <=", value, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortLike(String value) {
            addCriterion("smtp_ssl_port like", value, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortNotLike(String value) {
            addCriterion("smtp_ssl_port not like", value, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortIn(List<String> values) {
            addCriterion("smtp_ssl_port in", values, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortNotIn(List<String> values) {
            addCriterion("smtp_ssl_port not in", values, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortBetween(String value1, String value2) {
            addCriterion("smtp_ssl_port between", value1, value2, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpSslPortNotBetween(String value1, String value2) {
            addCriterion("smtp_ssl_port not between", value1, value2, "smtpSslPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortIsNull() {
            addCriterion("smtp_port is null");
            return (Criteria) this;
        }

        public Criteria andSmtpPortIsNotNull() {
            addCriterion("smtp_port is not null");
            return (Criteria) this;
        }

        public Criteria andSmtpPortEqualTo(String value) {
            addCriterion("smtp_port =", value, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortNotEqualTo(String value) {
            addCriterion("smtp_port <>", value, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortGreaterThan(String value) {
            addCriterion("smtp_port >", value, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortGreaterThanOrEqualTo(String value) {
            addCriterion("smtp_port >=", value, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortLessThan(String value) {
            addCriterion("smtp_port <", value, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortLessThanOrEqualTo(String value) {
            addCriterion("smtp_port <=", value, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortLike(String value) {
            addCriterion("smtp_port like", value, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortNotLike(String value) {
            addCriterion("smtp_port not like", value, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortIn(List<String> values) {
            addCriterion("smtp_port in", values, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortNotIn(List<String> values) {
            addCriterion("smtp_port not in", values, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortBetween(String value1, String value2) {
            addCriterion("smtp_port between", value1, value2, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSmtpPortNotBetween(String value1, String value2) {
            addCriterion("smtp_port not between", value1, value2, "smtpPort");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressIsNull() {
            addCriterion("send_from_address is null");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressIsNotNull() {
            addCriterion("send_from_address is not null");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressEqualTo(String value) {
            addCriterion("send_from_address =", value, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressNotEqualTo(String value) {
            addCriterion("send_from_address <>", value, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressGreaterThan(String value) {
            addCriterion("send_from_address >", value, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressGreaterThanOrEqualTo(String value) {
            addCriterion("send_from_address >=", value, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressLessThan(String value) {
            addCriterion("send_from_address <", value, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressLessThanOrEqualTo(String value) {
            addCriterion("send_from_address <=", value, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressLike(String value) {
            addCriterion("send_from_address like", value, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressNotLike(String value) {
            addCriterion("send_from_address not like", value, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressIn(List<String> values) {
            addCriterion("send_from_address in", values, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressNotIn(List<String> values) {
            addCriterion("send_from_address not in", values, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressBetween(String value1, String value2) {
            addCriterion("send_from_address between", value1, value2, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressNotBetween(String value1, String value2) {
            addCriterion("send_from_address not between", value1, value2, "sendFromAddress");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdIsNull() {
            addCriterion("send_from_address_pwd is null");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdIsNotNull() {
            addCriterion("send_from_address_pwd is not null");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdEqualTo(String value) {
            addCriterion("send_from_address_pwd =", value, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdNotEqualTo(String value) {
            addCriterion("send_from_address_pwd <>", value, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdGreaterThan(String value) {
            addCriterion("send_from_address_pwd >", value, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdGreaterThanOrEqualTo(String value) {
            addCriterion("send_from_address_pwd >=", value, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdLessThan(String value) {
            addCriterion("send_from_address_pwd <", value, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdLessThanOrEqualTo(String value) {
            addCriterion("send_from_address_pwd <=", value, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdLike(String value) {
            addCriterion("send_from_address_pwd like", value, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdNotLike(String value) {
            addCriterion("send_from_address_pwd not like", value, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdIn(List<String> values) {
            addCriterion("send_from_address_pwd in", values, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdNotIn(List<String> values) {
            addCriterion("send_from_address_pwd not in", values, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdBetween(String value1, String value2) {
            addCriterion("send_from_address_pwd between", value1, value2, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andSendFromAddressPwdNotBetween(String value1, String value2) {
            addCriterion("send_from_address_pwd not between", value1, value2, "sendFromAddressPwd");
            return (Criteria) this;
        }

        public Criteria andStateIsNull() {
            addCriterion("state is null");
            return (Criteria) this;
        }

        public Criteria andStateIsNotNull() {
            addCriterion("state is not null");
            return (Criteria) this;
        }

        public Criteria andStateEqualTo(Byte value) {
            addCriterion("state =", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotEqualTo(Byte value) {
            addCriterion("state <>", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateGreaterThan(Byte value) {
            addCriterion("state >", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateGreaterThanOrEqualTo(Byte value) {
            addCriterion("state >=", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateLessThan(Byte value) {
            addCriterion("state <", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateLessThanOrEqualTo(Byte value) {
            addCriterion("state <=", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateIn(List<Byte> values) {
            addCriterion("state in", values, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotIn(List<Byte> values) {
            addCriterion("state not in", values, "state");
            return (Criteria) this;
        }

        public Criteria andStateBetween(Byte value1, Byte value2) {
            addCriterion("state between", value1, value2, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotBetween(Byte value1, Byte value2) {
            addCriterion("state not between", value1, value2, "state");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(Byte value) {
            addCriterion("type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(Byte value) {
            addCriterion("type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(Byte value) {
            addCriterion("type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(Byte value) {
            addCriterion("type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(Byte value) {
            addCriterion("type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(Byte value) {
            addCriterion("type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<Byte> values) {
            addCriterion("type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<Byte> values) {
            addCriterion("type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(Byte value1, Byte value2) {
            addCriterion("type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(Byte value1, Byte value2) {
            addCriterion("type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdIsNull() {
            addCriterion("outreach_info_id is null");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdIsNotNull() {
            addCriterion("outreach_info_id is not null");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdEqualTo(String value) {
            addCriterion("outreach_info_id =", value, "outreachInfoId");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdNotEqualTo(String value) {
            addCriterion("outreach_info_id <>", value, "outreachInfoId");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdGreaterThan(String value) {
            addCriterion("outreach_info_id >", value, "outreachInfoId");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdGreaterThanOrEqualTo(String value) {
            addCriterion("outreach_info_id >=", value, "outreachInfoId");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdLessThan(String value) {
            addCriterion("outreach_info_id <", value, "outreachInfoId");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdLessThanOrEqualTo(String value) {
            addCriterion("outreach_info_id <=", value, "outreachInfoId");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdLike(String value) {
            addCriterion("outreach_info_id like", value, "outreachInfoId");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdNotLike(String value) {
            addCriterion("outreach_info_id not like", value, "outreachInfoId");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdIn(List<String> values) {
            addCriterion("outreach_info_id in", values, "outreachInfoId");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdNotIn(List<String> values) {
            addCriterion("outreach_info_id not in", values, "outreachInfoId");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdBetween(String value1, String value2) {
            addCriterion("outreach_info_id between", value1, value2, "outreachInfoId");
            return (Criteria) this;
        }

        public Criteria andOutreachInfoIdNotBetween(String value1, String value2) {
            addCriterion("outreach_info_id not between", value1, value2, "outreachInfoId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria implements Serializable {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion implements Serializable {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}